import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import tuneModels.Database;
import tuneViews.PlayerApp;
import tuneControllers.PlayerController;
import tuneControllers.ReportController;
import tuneModels.MusicControls;
import tuneModels.VolumeControl;
import tuneViews.Report;


/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 *
 * @author Israel Agyeman-Premp
 */
public class MainClass {
    
    public MainClass(){
        //
    }

    public static void main(String ags[]) {
        /* Set the Windows look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* Setting the looka and feel of the app */
        try {
            // Set System L&F
            UIManager.setLookAndFeel(
                    UIManager.getSystemLookAndFeelClassName());
        } catch (UnsupportedLookAndFeelException | ClassNotFoundException | InstantiationException | IllegalAccessException e) {
            // handle exception
            System.out.println("Theme not available");
        }

        //</editor-fold>
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                PlayerApp app = new PlayerApp();
                Database db = new Database();
                Report rp = new Report();
                MusicControls mc = new MusicControls();
                VolumeControl vc = new VolumeControl();
                PlayerController pc;
                ReportController rpc;
                pc = new PlayerController(db, app,mc,vc);
                pc.control();
                rpc = new ReportController(rp,db,app);
                rpc.control();
            }
        });
    }

}
